package com.lxp.basic.继承案例发红包;

import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName QunZhu
 * @Aauthor swd
 * @Create 2019-12-04 13:45
 */


public class QunZhu extends User{

    public QunZhu() {
    }

    public QunZhu(String userName, double leftMoney) {
        super(userName, leftMoney);
    }

    /* 群主发红包，就是把一个整数的金额，分层若干等份。
     1.获取群主余额,是否够发红包. 不能则返回null,并提示.能则继续.
     2.修改群主余额.
     3.拆分红包.
        3.1.如果能整除，那么就平均分。
        3.2.如果不能整除，那么就把余数分给最后一份。
     */
    public List<Double> send(int money,int count){
        //获取群主余额
        Double leftMoney = super.getLeftMoney();
        if (money > leftMoney){
            return null;
        }
        //修改群主余额
        setLeftMoney(leftMoney - money);
        //创建集合，保存等份金额
        List<Double> list = new ArrayList<>();
        //扩大100倍,相当于折算成'分'为单位,避免小数运算损失精度的问题
        money = money*100;
        //每份金额
        int m = money / count;
        //不能整除的余数
        int l = money % count;
        //无论是否整除，n-1份是等额金额
        for (int i = 0; i <count - 1 ; i++) {
            list.add(m / 100.00);
        }
        //判断是否整除
        if (l == 0){
            list.add(m / 100.00);
        }else {
            //不能整除，最后一份是 每份金额+余数金额
            list.add((m + l) / 100.00);
        }
        return list;
    }

}
